1. Field of the Invention
The present invention relates to computer software, and more particularly to agent-based management of a distributed or enterprise computer system.
2. Description of the Related Art
The data processing resources of business organizations are increasingly taking the form of a distributed computing environment in which data and processing are dispersed over a network comprising many interconnected, heterogeneous, geographically remote computers. Such a computing environment is commonly referred to as an enterprise computing environment, or simply an enterprise. As used herein, an “enterprise” refers to a network comprising one or more computer systems. Managers of an enterprise often employ software packages known as enterprise management systems to monitor, analyze, and manage the resources of the enterprise. For example, an enterprise management system might include a software agent on an individual computer system for the monitoring of particular resources such as CPU usage or disk access. As used herein, an “agent,” “agent application,” or “software agent” is a computer program that is configured to monitor and/or manage the hardware and/or software resources of one or more computer systems. U.S. Pat. No. 5,655,081 discloses one example of an agent-based enterprise management system.
With data widely distributed over the many individual computer systems that comprise the enterprise, it is advantageous for the data to be organized and accessible throughout the enterprise. For example, in monitoring individual computer systems, software agents may generate and store data related to the monitoring. This data is often referred to as metric data. Metrics may include, for example, measurements relating to CPU usage, network usage, or memory usage. Other agents or applications on the same or other computer systems may desire to access this metric data. For example, a console application may desire to access the metrics from individual, monitored computer systems in order to graph or analyze potential bottlenecks in a network which links together the computer systems.
An enterprise-wide namespace is one way to make data available throughout an enterprise. A namespace provides efficient referencing and retrieval of information. The term “namespace” generally refers to a set of names in which all names are unique. As used herein, a “namespace” may refer to a memory, or a plurality of memories which are coupled to one another, whose contents are uniquely addressable. “Uniquely addressable” refers to the property that items in a namespace have unique names such that any item in the namespace has a name different from the names of all other items in the namespace.
The internet is one example of a namespace. The internet comprises many individual computer systems which are linked together through an addressing system which guarantees that every server name is different from every other server name. The internet achieves the property of unique addressability through the use of a hierarchical name structure. For example, the top level of the hierarchy includes a limited number of high-level domain suffixes such as “.com”, “.edu”, and “.org”. Within a high-level suffix such as “.com” are many domains such as, for example, “bmc.com”. The domain administrator of “bmc.com” has the ability to designate lower levels of the hierarchy, such as division names, subdivision names, site names, server names, and so on. For example, the unique name of an individual server may take a form such as “computer.site.division.bmc.com” or “computer.site.subdivision.division.bmc.com”. This hierarchy helps ensure that each server has a unique name within the namespace.
A namespace is typically a logical organization and not a physical one. The namespace of the internet, for instance, is not related to physical interconnections. For instance, “server1.bmc.com” and “server2.bmc.com” could be physically located in the same room, in different countries, or anywhere in between. In other words, a namespace may be thought of as a plurality of distinct physical memories which are organized as a single, and possibly distributed, logical memory.
A directory service is another way of making data available throughout an enterprise. Typically, a directory service is a network service that identifies all resources on a network and makes them accessible to users and applications. Resources often include e-mail addresses, computers, and peripheral devices such as printers. Ideally, the directory service should make the physical network topology and protocols transparent so that a user on a network can access any resource without knowing where or how it is physically connected. A directory service is similar to a database in that it contains entries.
A directory service may be implemented in many different ways. For example, different implementations may allow different kinds of information to be stored in the directory. Often, entries may contain descriptive information relating to attributes of the resources. Different implementations may also place different requirements on how that information can be referenced, queried, updated, and protected from unauthorized access. Some directory services are local: they provide data only within a restricted context. For example, the “finger” service which returns information on user accounts may be operable only on a particular network or machine. Other services are global: they provide data within a much broader context such as the entire internet. Global services such as those found on the internet are usually distributed. In other words, the data they contain is spread across many machines, all of which cooperate to provide the directory service. Typically, a global directory service defines a namespace which gives the same view of the data regardless of the location of the requesting machine or software relative to the data itself.
The Lightweight Directory Access Protocol (LDAP) is one example of a directory service. LDAP is both an information model and a protocol for querying and manipulating the information. The LDAP directory service model is based on entries. An entry is a collection of attributes having an unambiguous or unique name and often relating to information such as e-mail addresses and public encryption keys. LDAP's overall data and namespace model is essentially that of the more complex X.500 standard, and LDAP is also a set of protocols for accessing X.500 information directories. The X.500 standard defines basic object classes and a global, hierarchical directory structure. X.500 may be used to define a directory web in much the same way that the Hypertext Transport Protocol (HTTP) and Hypertext Markup Language (HTML) standards are used to define and implement the World Wide Web. Anyone with an X.500 or LDAP client may peruse the global directory just as they may use a web browser to peruse the global Web. Fundamentally, therefore, LDAP is a method for accessing information from a variety of directories, as long as vendors have implemented LDAP support in their directories. However, LDAP does not provide advanced features such as associations or the inheritance of attribute values and children from another entry in the namespace.
Another approach towards organizing information in an enterprise is taken by the Web-Based Enterprise Management (WBEM) initiative, managed by the Desktop Management Task Force (DMTF). The WBEM initiative is intended to prescribe enterprise management standards. One WBEM standard, the Common Information Model (CIM), is a platform-independent, object-oriented information model which allows for the interchange of management information between management systems and applications. CIM offers a single data-description mechanism for enterprise data sources from multiple vendors and frameworks. CIM provides a Meta Schema and a Schema. The CIM Meta Schema is a formal definition of the information model: it defines the terms used to express the model and the usage and semantics of the terms. The CIM Meta Schema also supports associations as types of classes. The CIM Schema provides the actual model descriptions. In other words, the CIM Schema supplies a set of classes with properties and associations that provide a conceptual framework for organizing the available information about a managed environment in an enterprise. Nevertheless, the Common Information Model merely provides the basic functionality to allow products from different vendors to exchange management data with one another; vendors must usually provide extensions to CIM in order to support product development. Furthermore, CIM does not specify how to implement its data description model in an enterprise-wide namespace.
For the foregoing reasons, there is a need for a system and method for an improved namespace and object description system for enterprise management.